home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1995 #5 & #6 / Amiga Plus CD - 1995 - No. 5 and 6.iso / pd / netz / term / extras / source / gtlayout-source.lha / LTP_FillMenu.c < prev    next >
C/C++ Source or Header  |  1995-03-25  |  1KB  |  86 lines

  1. /*  GadTools layout toolkit
  2. **
  3. **  Copyright © 1993-1995 by Olaf `Olsen' Barthel
  4. **  Freely distributable.
  5. **
  6. **  :ts=4
  7. */
  8.  
  9. #include "gtlayout_global.h"
  10.  
  11. #ifdef DO_MENUS
  12.  
  13.     /* LTP_FillSub(struct MenuItem *Item):
  14.      *
  15.      *    Fill in the submenu item IDs.
  16.      */
  17.  
  18. VOID __regargs
  19. LTP_FillSub(struct MenuItem *Item)
  20. {
  21.     ULONG         Count = 0;
  22.     ItemNode    *Node;
  23.  
  24.     do
  25.     {
  26.         Node = (ItemNode *)((ULONG)Item - sizeof(struct MinNode));
  27.  
  28.         Node -> MenuCode = NOMENU | NOITEM | SHIFTSUB(Count);
  29.  
  30.         Count++;
  31.     }
  32.     while(Item = Item -> NextItem);
  33. }
  34.  
  35.     /* FillItem(struct MenuItem *Item):
  36.      *
  37.      *    Fill in the menu item IDs.
  38.      */
  39.  
  40. VOID __regargs
  41. LTP_FillItem(struct MenuItem *Item)
  42. {
  43.     ULONG         Count = 0;
  44.     ItemNode    *Node;
  45.  
  46.     do
  47.     {
  48.         Node = (ItemNode *)((ULONG)Item - sizeof(struct MinNode));
  49.  
  50.         Node -> MenuCode = NOMENU | SHIFTITEM(Count) | NOSUB;
  51.  
  52.         if(Item -> SubItem)
  53.             LTP_FillSub(Item -> SubItem);
  54.  
  55.         Count++;
  56.     }
  57.     while(Item = Item -> NextItem);
  58. }
  59.  
  60.     /* LTP_FillMenu(struct Menu *Menu):
  61.      *
  62.      *    Fill in the menu IDs.
  63.      */
  64.  
  65. VOID __regargs
  66. LTP_FillMenu(struct Menu *Menu)
  67. {
  68.     ULONG         Count = 0;
  69.     MenuNode    *Node;
  70.  
  71.     do
  72.     {
  73.         Node = (MenuNode *)((ULONG)Menu - sizeof(struct MinNode));
  74.  
  75.         Node -> MenuCode = SHIFTMENU(Count) | NOITEM | NOSUB;
  76.  
  77.         if(Menu -> FirstItem)
  78.             LTP_FillItem(Menu -> FirstItem);
  79.  
  80.         Count++;
  81.     }
  82.     while(Menu = Menu -> NextMenu);
  83. }
  84.  
  85. #endif    /* DO_MENUS */
  86.